home *** CD-ROM | disk | FTP | other *** search
Modula Definition | 1993-10-06 | 6.3 KB | 181 lines |
- DEFINITION MODULE ANSIC;
- __DEF_SWITCHES__
- #ifdef HM2
- #ifdef __LONG_WHOLE__
- (*$!i+: Modul muss mit $i- uebersetzt werden! *)
- (*$!w+: Modul muss mit $w- uebersetzt werden! *)
- #else
- (*$!i-: Modul muss mit $i+ uebersetzt werden! *)
- (*$!w-: Modul muss mit $w+ uebersetzt werden! *)
- #endif
- #endif
- #if no_reexport
- # error *** compiler does not allow reexporting!
- #endif
- (****************************************************************************)
- (* Dieses Modul fasst alle ANSI-C-Bibliotheksfunktionen, aus den unterlie- *)
- (* genden Modulen zusammen. Teilweise sind diese Funktionen ebenfalls *)
- (* POSIX.1-Funktionen, werden aber ueblicherweise nur mit ``C'' in Verbin- *)
- (* dung gebracht. Fuer Leute, die lieber aus einem einzigen Modulimportieren*)
- (* wollen, und deren Compiler den Reexport erlaubt. *)
- (* Fuer die Beschreibung der Funktionen sollten die entsprechenden Defini- *)
- (* tionsmodule konsultiert werden. *)
- (* -------------------------------------------------------------------------*)
- (* 01-Okt-93, Holger Kleinschmidt *)
- (****************************************************************************)
- #if !ISO_proc_const
- FROM SYSTEM IMPORT ADDRESS;
- FROM PORTAB IMPORT UNSIGNEDLONG,SIGNEDLONG;
- #endif
- IMPORT types,cmdline,ctype,cstr,lib,MEMBLK;
-
- (*===========================================================================*)
- (* Modul: 'types' *)
- (*===========================================================================*)
-
- CONST
- NULL = types.NULL;
-
- TYPE
- StrRange = types.StrRange;
- StrPtr = types.StrPtr;
-
- TYPE
- ArrayRange = types.ArrayRange;
- StrArray = types.StrArray;
-
- (*===========================================================================*)
- (* Modul: 'ctype' *)
- (*===========================================================================*)
-
- #if ISO_proc_const
- CONST
- isalnum = ctype.isalnum;
- isalpha = ctype.isalpha;
- iscntrl = ctype.iscntrl;
- isdigit = ctype.isdigit;
- isgraph = ctype.isgraph;
- islower = ctype.islower;
- isprint = ctype.isprint;
- ispunct = ctype.ispunct;
- isspace = ctype.isspace;
- isupper = ctype.isupper;
- isxdigit = ctype.isxdigit;
- tolower = ctype.tolower;
- toupper = ctype.toupper;
- #else
- VAR (* READ ONLY! *)
- isalnum : PROCEDURE(CHAR):BOOLEAN;
- isalpha : PROCEDURE(CHAR):BOOLEAN;
- iscntrl : PROCEDURE(CHAR):BOOLEAN;
- isdigit : PROCEDURE(CHAR):BOOLEAN;
- isgraph : PROCEDURE(CHAR):BOOLEAN;
- islower : PROCEDURE(CHAR):BOOLEAN;
- isprint : PROCEDURE(CHAR):BOOLEAN;
- ispunct : PROCEDURE(CHAR):BOOLEAN;
- isspace : PROCEDURE(CHAR):BOOLEAN;
- isupper : PROCEDURE(CHAR):BOOLEAN;
- isxdigit : PROCEDURE(CHAR):BOOLEAN;
- tolower : PROCEDURE(CHAR):CHAR;
- toupper : PROCEDURE(CHAR):CHAR;
- #endif
-
- (*===========================================================================*)
- (* Modul: 'cstr' *)
- (*===========================================================================*)
-
- #if ISO_proc_const
- CONST
- strlen = cstr.strlen;
- strcpy = cstr.strcpy;
- strncpy = cstr.strncpy;
- strcat = cstr.strcat;
- strncat = cstr.strncat;
- strcmp = cstr.strcmp;
- strncmp = cstr.strncmp;
- strchr = cstr.strchr;
- strrchr = cstr.strrchr;
- strstr = cstr.strstr;
- strpbrk = cstr.strpbrk;
- strerror = cstr.strerror;
- #else
- VAR (* READ ONLY! *)
- strlen : PROCEDURE(StrPtr):types.sizeT;
- strcpy : PROCEDURE(StrPtr,StrPtr);
- strncpy : PROCEDURE(StrPtr,StrPtr,types.sizeT);
- strcat : PROCEDURE(StrPtr,StrPtr);
- strncat : PROCEDURE(StrPtr,StrPtr,types.sizeT);
- strcmp : PROCEDURE(StrPtr,StrPtr):INTEGER;
- strncmp : PROCEDURE(StrPtr,StrPtr,types.sizeT):INTEGER;
- strchr : PROCEDURE(StrPtr,CHAR):StrPtr;
- strrchr : PROCEDURE(StrPtr,CHAR):StrPtr;
- strstr : PROCEDURE(StrPtr,StrPtr):StrPtr;
- strpbrk : PROCEDURE(StrPtr,StrPtr):StrPtr;
- strerror : PROCEDURE(INTEGER,VAR ARRAY OF CHAR);
- #endif
-
- (*===========================================================================*)
- (* Modul: 'cmdline' *)
- (*===========================================================================*)
-
- (* 'cmdline.environ' kann als Variable nicht reexportiert werden *)
- #if ISO_proc_const
- CONST
- main = cmdline.main;
- getenv = cmdline.getenv;
- #else
- VAR (* READ ONLY! *)
- main : PROCEDURE(VAR ArrayRange,VAR StrArray);
- getenv : PROCEDURE(REF ARRAY OF CHAR):StrPtr;
- #endif
-
- (*===========================================================================*)
- (* Modul: 'lib' *)
- (*===========================================================================*)
-
- CONST
- RandMax = lib.RandMax;
-
- TYPE
- CompareProc = lib.CompareProc;
-
- #if ISO_proc_const
- CONST
- strtol = lib.strtol;
- strtoul = lib.strtoul;
- bsearch = lib.bsearch;
- qsort = lib.qsort;
- rand = lib.rand;
- srand = lib.srand;
- #else
- VAR (* READ ONLY! *)
- strtol : PROCEDURE(REF ARRAY OF CHAR,VAR CARDINAL,CARDINAL):SIGNEDLONG;
- strtoul : PROCEDURE(REF ARRAY OF CHAR,VAR CARDINAL,CARDINAL):UNSIGNEDLONG;
- bsearch : PROCEDURE(ADDRESS,ADDRESS,UNSIGNEDLONG,UNSIGNEDLONG,CompareProc):ADDRESS;
- qsort : PROCEDURE(ADDRESS,UNSIGNEDLONG,UNSIGNEDLONG,CompareProc);
- rand : PROCEDURE():UNSIGNEDLONG;
- srand : PROCEDURE(UNSIGNEDLONG);
- #endif
-
- (*===========================================================================*)
- (* Modul: 'MEMBLK' *)
- (*===========================================================================*)
-
- #if ISO_proc_const
- CONST
- memmove = MEMBLK.memmove;
- memcpy = MEMBLK.memmove; (* kein Schreibfehler *)
- memset = MEMBLK.memset;
- memchr = MEMBLK.memchr;
- memcmp = MEMBLK.memcmp;
- #else
- VAR (* READ ONLY! *)
- memmove : PROCEDURE(ADDRESS,ADDRESS,UNSIGNEDLONG);
- memcpy : PROCEDURE(ADDRESS,ADDRESS,UNSIGNEDLONG);
- memset : PROCEDURE(ADDRESS,CARDINAL,UNSIGNEDLONG);
- memchr : PROCEDURE(ADDRESS,CARDINAL,UNSIGNEDLONG):ADDRESS;
- memcmp : PROCEDURE(ADDRESS,ADDRESS,UNSIGNEDLONG):INTEGER;
- #endif
-
- END ANSIC.
-